﻿<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup Label="ProjectConfigurations">
    <ProjectConfiguration Include="Debug|Win32">
      <Configuration>Debug</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Debug|x64">
      <Configuration>Debug</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Release|Win32">
      <Configuration>Release</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Release|x64">
      <Configuration>Release</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
  </ItemGroup>
  <PropertyGroup Label="Globals">
    <ProjectGuid>{45BD58A5-1711-417f-99E7-B640C56F8009}</ProjectGuid>
    <TemplateGuid>{dd38f7fc-d7bd-488b-9242-7d8754cde80d}</TemplateGuid>
    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
    <MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
    <Configuration>Release</Configuration>
    <Platform Condition="'$(Platform)' == ''">x64</Platform>
    <RootNamespace>$(MSBuildProjectName)</RootNamespace>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
    <TargetVersion>Windows10</TargetVersion>
    <_NT_TARGET_VERSION>0x0601</_NT_TARGET_VERSION>
    <UseDebugLibraries>false</UseDebugLibraries>
    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
    <ConfigurationType>Driver</ConfigurationType>
    <DriverType>WDM</DriverType>
    <SupportsPackaging>false</SupportsPackaging>
    <SpectreMitigation>false</SpectreMitigation>
    <Driver_SpectreMitigation>false</Driver_SpectreMitigation>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
    <TargetVersion>Windows10</TargetVersion>
    <_NT_TARGET_VERSION>0x0601</_NT_TARGET_VERSION>
    <UseDebugLibraries>false</UseDebugLibraries>
    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
    <ConfigurationType>Driver</ConfigurationType>
    <DriverType>WDM</DriverType>
    <SupportsPackaging>false</SupportsPackaging>
    <WholeProgramOptimization>true</WholeProgramOptimization>
    <SpectreMitigation>false</SpectreMitigation>
    <Driver_SpectreMitigation>false</Driver_SpectreMitigation>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
    <TargetVersion>Windows10</TargetVersion>
    <_NT_TARGET_VERSION>0x0601</_NT_TARGET_VERSION>
    <UseDebugLibraries>false</UseDebugLibraries>
    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
    <ConfigurationType>Driver</ConfigurationType>
    <DriverType>WDM</DriverType>
    <SupportsPackaging>false</SupportsPackaging>
    <SpectreMitigation>false</SpectreMitigation>
    <Driver_SpectreMitigation>false</Driver_SpectreMitigation>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
    <TargetVersion>Windows10</TargetVersion>
    <_NT_TARGET_VERSION>0x0601</_NT_TARGET_VERSION>
    <UseDebugLibraries>false</UseDebugLibraries>
    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
    <ConfigurationType>Driver</ConfigurationType>
    <DriverType>WDM</DriverType>
    <SupportsPackaging>false</SupportsPackaging>
    <WholeProgramOptimization>true</WholeProgramOptimization>
    <SpectreMitigation>false</SpectreMitigation>
    <Driver_SpectreMitigation>false</Driver_SpectreMitigation>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
  <ImportGroup Label="ExtensionSettings">
  </ImportGroup>
  <ImportGroup Label="PropertySheets">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <PropertyGroup Label="UserMacros" />
  <PropertyGroup Label="PropertySheets">
    <DisableProductionSignDebugWarnings>true</DisableProductionSignDebugWarnings>
  </PropertyGroup>
  <PropertyGroup />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
    <SignMode>Off</SignMode>
    <TimeStampServer />
    <OutDir>..\bin\DebugX86Kernel\</OutDir>
    <IntDir>obj\$(ProjectName)-$(Platform)-$(Configuration)\</IntDir>
    <EnableInf2cat>false</EnableInf2cat>
    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
    <SignMode>Off</SignMode>
    <TimeStampServer />
    <OutDir>..\bin\ReleaseX86Kernel\</OutDir>
    <IntDir>obj\$(ProjectName)-$(Platform)-$(Configuration)\</IntDir>
    <EnableInf2cat>false</EnableInf2cat>
    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
    <SignMode>Off</SignMode>
    <TimeStampServer />
    <OutDir>..\bin\DebugX64Kernel\</OutDir>
    <IntDir>obj\$(ProjectName)-$(Platform)-$(Configuration)\</IntDir>
    <EnableInf2cat>false</EnableInf2cat>
    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
    <SignMode>Off</SignMode>
    <TimeStampServer />
    <OutDir>..\bin\ReleaseX64Kernel\</OutDir>
    <IntDir>obj\$(ProjectName)-$(Platform)-$(Configuration)\</IntDir>
    <EnableInf2cat>false</EnableInf2cat>
    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
  </PropertyGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <ClCompile>
      <PreprocessorDefinitions>ZYAN_NO_LIBC;ZYDIS_NO_LIBC;ZYCORE_STATIC_BUILD;ZYDIS_STATIC_BUILD;POOL_NX_OPTIN;_X86_=1;i386=1;STD_CALL;DBG;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <AdditionalOptions>/Gw /kernel</AdditionalOptions>
      <DiagnosticsFormat>Caret</DiagnosticsFormat>
      <AdditionalIncludeDirectories>../../dependencies/zycore/include;../../include;..;$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
      <ControlFlowGuard>false</ControlFlowGuard>
      <SupportJustMyCode>false</SupportJustMyCode>
      <DisableSpecificWarnings>4201;4748;%(DisableSpecificWarnings)</DisableSpecificWarnings>
      <GuardEHContMetadata>false</GuardEHContMetadata>
      <LanguageStandard_C>stdc11</LanguageStandard_C>
    </ClCompile>
    <Link>
      <AdditionalOptions>/NOVCFEATURE /NOCOFFGRPINFO %(AdditionalOptions)</AdditionalOptions>
      <Profile>false</Profile>
      <RandomizedBaseAddress>true</RandomizedBaseAddress>
      <DataExecutionPrevention>true</DataExecutionPrevention>
      <AdditionalLibraryDirectories>$(TargetDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
      <FullProgramDatabaseFile>true</FullProgramDatabaseFile>
      <Version>6.1</Version>
      <AdditionalDependencies>Zydis.lib;%(AdditionalDependencies);$(KernelBufferOverflowLib);$(DDK_LIB_PATH)ntoskrnl.lib;$(DDK_LIB_PATH)hal.lib;$(DDK_LIB_PATH)wmilib.lib</AdditionalDependencies>
      <EntryPointSymbol>DriverEntry@8</EntryPointSymbol>
      <GenerateDebugInformation>DebugFull</GenerateDebugInformation>
    </Link>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <ClCompile>
      <PreprocessorDefinitions>ZYAN_NO_LIBC;ZYDIS_NO_LIBC;ZYCORE_STATIC_BUILD;ZYDIS_STATIC_BUILD;POOL_NX_OPTIN;_X86_=1;i386=1;STD_CALL;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <AdditionalOptions>/Gw /kernel</AdditionalOptions>
      <DiagnosticsFormat>Caret</DiagnosticsFormat>
      <AdditionalIncludeDirectories>../../dependencies/zycore/include;../../include;..;$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <OmitFramePointers>true</OmitFramePointers>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <ControlFlowGuard>false</ControlFlowGuard>
      <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
      <SupportJustMyCode>false</SupportJustMyCode>
      <Optimization>MaxSpeed</Optimization>
      <DisableSpecificWarnings>4201;4603;4627;4986;4987;%(DisableSpecificWarnings)</DisableSpecificWarnings>
      <GuardEHContMetadata>false</GuardEHContMetadata>
      <LanguageStandard_C>stdc11</LanguageStandard_C>
    </ClCompile>
    <Link>
      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
      <EntryPointSymbol>DriverEntry@8</EntryPointSymbol>
      <AdditionalOptions>/NOVCFEATURE /NOCOFFGRPINFO %(AdditionalOptions)</AdditionalOptions>
      <Profile>false</Profile>
      <RandomizedBaseAddress>true</RandomizedBaseAddress>
      <DataExecutionPrevention>true</DataExecutionPrevention>
      <AdditionalLibraryDirectories>$(TargetDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
      <AdditionalDependencies>Zydis.lib;%(AdditionalDependencies);$(DDK_LIB_PATH)ntoskrnl.lib;$(DDK_LIB_PATH)hal.lib;$(DDK_LIB_PATH)wmilib.lib</AdditionalDependencies>
      <FullProgramDatabaseFile>true</FullProgramDatabaseFile>
      <Version>6.1</Version>
      <GenerateDebugInformation>DebugFull</GenerateDebugInformation>
    </Link>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
    <ClCompile>
      <PreprocessorDefinitions>ZYAN_NO_LIBC;ZYDIS_NO_LIBC;ZYCORE_STATIC_BUILD;ZYDIS_STATIC_BUILD;POOL_NX_OPTIN;_WIN64;_AMD64_;AMD64;DBG;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <AdditionalOptions>/Gw /kernel</AdditionalOptions>
      <DiagnosticsFormat>Caret</DiagnosticsFormat>
      <AdditionalIncludeDirectories>../../dependencies/zycore/include;../../include;..;$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
      <ControlFlowGuard>false</ControlFlowGuard>
      <SupportJustMyCode>false</SupportJustMyCode>
      <DisableSpecificWarnings>4201;4748;%(DisableSpecificWarnings)</DisableSpecificWarnings>
      <GuardEHContMetadata>false</GuardEHContMetadata>
      <LanguageStandard_C>stdc11</LanguageStandard_C>
    </ClCompile>
    <Link>
      <AdditionalOptions>/NOVCFEATURE /NOCOFFGRPINFO %(AdditionalOptions)</AdditionalOptions>
      <Profile>false</Profile>
      <RandomizedBaseAddress>true</RandomizedBaseAddress>
      <DataExecutionPrevention>true</DataExecutionPrevention>
      <AdditionalLibraryDirectories>$(TargetDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
      <FullProgramDatabaseFile>true</FullProgramDatabaseFile>
      <Version>6.1</Version>
      <AdditionalDependencies>Zydis.lib;%(AdditionalDependencies);$(KernelBufferOverflowLib);$(DDK_LIB_PATH)ntoskrnl.lib;$(DDK_LIB_PATH)hal.lib;$(DDK_LIB_PATH)wmilib.lib</AdditionalDependencies>
      <GenerateDebugInformation>DebugFull</GenerateDebugInformation>
      <EntryPointSymbol>DriverEntry</EntryPointSymbol>
    </Link>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
    <ClCompile>
      <PreprocessorDefinitions>ZYAN_NO_LIBC;ZYDIS_NO_LIBC;ZYCORE_STATIC_BUILD;ZYDIS_STATIC_BUILD;POOL_NX_OPTIN;_WIN64;_AMD64_;AMD64;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <AdditionalOptions>/Gw /kernel</AdditionalOptions>
      <DiagnosticsFormat>Caret</DiagnosticsFormat>
      <AdditionalIncludeDirectories>../../dependencies/zycore/include;../../include;..;$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <OmitFramePointers>true</OmitFramePointers>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <ControlFlowGuard>false</ControlFlowGuard>
      <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
      <SupportJustMyCode>false</SupportJustMyCode>
      <Optimization>MaxSpeed</Optimization>
      <DisableSpecificWarnings>4201;4603;4627;4986;4987;%(DisableSpecificWarnings)</DisableSpecificWarnings>
      <GuardEHContMetadata>false</GuardEHContMetadata>
      <LanguageStandard_C>stdc11</LanguageStandard_C>
    </ClCompile>
    <Link>
      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
      <AdditionalOptions>/NOVCFEATURE /NOCOFFGRPINFO %(AdditionalOptions)</AdditionalOptions>
      <Profile>false</Profile>
      <RandomizedBaseAddress>true</RandomizedBaseAddress>
      <DataExecutionPrevention>true</DataExecutionPrevention>
      <AdditionalLibraryDirectories>$(TargetDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
      <AdditionalDependencies>Zydis.lib;%(AdditionalDependencies);$(DDK_LIB_PATH)ntoskrnl.lib;$(DDK_LIB_PATH)hal.lib;$(DDK_LIB_PATH)wmilib.lib</AdditionalDependencies>
      <FullProgramDatabaseFile>true</FullProgramDatabaseFile>
      <Version>6.1</Version>
      <GenerateDebugInformation>DebugFull</GenerateDebugInformation>
      <EntryPointSymbol>DriverEntry</EntryPointSymbol>
    </Link>
  </ItemDefinitionGroup>
  <ItemGroup>
    <Inf Exclude="@(Inf)" Include="*.inf" />
    <FilesToPackage Include="$(TargetPath)" Condition="'$(ConfigurationType)'=='Driver' or '$(ConfigurationType)'=='DynamicLibrary'" />
  </ItemGroup>
  <ItemGroup>
    <ClCompile Include="..\..\examples\ZydisWinKernel.c" />
  </ItemGroup>
  <ItemGroup>
    <ClInclude Include="..\..\dependencies\zycore\include\Zycore\Allocator.h" />
    <ClInclude Include="..\..\dependencies\zycore\include\Zycore\ArgParse.h" />
    <ClInclude Include="..\..\dependencies\zycore\include\Zycore\Atomic.h" />
    <ClInclude Include="..\..\dependencies\zycore\include\Zycore\Bitset.h" />
    <ClInclude Include="..\..\dependencies\zycore\include\Zycore\Comparison.h" />
    <ClInclude Include="..\..\dependencies\zycore\include\Zycore\Defines.h" />
    <ClInclude Include="..\..\dependencies\zycore\include\Zycore\Format.h" />
    <ClInclude Include="..\..\dependencies\zycore\include\Zycore\LibC.h" />
    <ClInclude Include="..\..\dependencies\zycore\include\Zycore\List.h" />
    <ClInclude Include="..\..\dependencies\zycore\include\Zycore\Object.h" />
    <ClInclude Include="..\..\dependencies\zycore\include\Zycore\Status.h" />
    <ClInclude Include="..\..\dependencies\zycore\include\Zycore\String.h" />
    <ClInclude Include="..\..\dependencies\zycore\include\Zycore\Types.h" />
    <ClInclude Include="..\..\dependencies\zycore\include\Zycore\Vector.h" />
    <ClInclude Include="..\..\dependencies\zycore\include\Zycore\Zycore.h" />
    <ClInclude Include="..\..\include\Zydis\Decoder.h" />
    <ClInclude Include="..\..\include\Zydis\DecoderTypes.h" />
    <ClInclude Include="..\..\include\Zydis\Defines.h" />
    <ClInclude Include="..\..\include\Zydis\Disassembler.h" />
    <ClInclude Include="..\..\include\Zydis\Encoder.h" />
    <ClInclude Include="..\..\include\Zydis\Formatter.h" />
    <ClInclude Include="..\..\include\Zydis\FormatterBuffer.h" />
    <ClInclude Include="..\..\include\Zydis\MetaInfo.h" />
    <ClInclude Include="..\..\include\Zydis\Mnemonic.h" />
    <ClInclude Include="..\..\include\Zydis\Register.h" />
    <ClInclude Include="..\..\include\Zydis\Segment.h" />
    <ClInclude Include="..\..\include\Zydis\SharedTypes.h" />
    <ClInclude Include="..\..\include\Zydis\ShortString.h" />
    <ClInclude Include="..\..\include\Zydis\Status.h" />
    <ClInclude Include="..\..\include\Zydis\Utils.h" />
    <ClInclude Include="..\..\include\Zydis\Zydis.h" />
  </ItemGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
  <ImportGroup Label="ExtensionTargets">
  </ImportGroup>
</Project>